/**
 * 定义ui公共模块
 */
(function(window, angular, undefined){

	var module = angular.module('water.common.esriMapSearch',[]);
	
	module.service('$esriMapSearchService',function(){

		/**
		 * 单图层服务查询，第一个图层
		 */
		this.searchMapServiceSingle = function(layerId,queryStr){
			var layerSearchInfoStr = '1=1';
			var layerSearchInfo = [];
			var layerIndexs = [];
			
			layerSearchInfo[0] = queryStr;
			layerIndexs.push(0);
			
			var layer = map.getLayer(layerId);
			dynamicLayerFilter(layer,layerSearchInfo,layerIndexs);
		}
		
		/**
		 * map esri的地图对象
		 * layerDefinitions 定义查询条件,必须是数组，和layerIndex这个参数对应，
		 * 					如果查询的是多个图层，而且每个图层的条件都不一样，这个参数还要体现条件和图层的对应，
		 * 					layerDefinitions[3] = 'id = 1'，标识查询索引号为3的图层，查询条件为id = 1，以此类推
		 * layerIndex 如果这个服务有多个图层，这里决定哪个图层显示，必须是数组，比如layerIndex = [1,3,5]，标识1,3,5这三个图层显示
		 * 
		 */
		function dynamicLayerFilter(layer,layerDefinitions,layerIndex){
			if(layer){
				
				if(!(layerDefinitions instanceof Array)){
					layerDefinitions = [layerDefinitions];
				}
				
				for(var i=0;i<layerDefinitions.length;i++){
					layerDefinitions = layerDefinitions.map(function(item){
						if(!(item instanceof Array) ){
							return [item];
						}
					});
				}
				
				if(!(layerIndex instanceof Array)){
					layerIndex = [layerIndex];
				}
				
				layer.setLayerDefinitions(layerDefinitions,true);
				layer.setVisibleLayers(layerIndex);
			}
		}
		
	});
	
}(window, angular));